<script>
  // 1、数组操作：
  // 给定一个数组 arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]，使用 map 方法生成一个新数组，新数组中的每个元素是原数组元素的平方。
  const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  const arrSquare = arr.map((element, index, array) => {
    return element * element
  })
  // 优化
  // const arrSquare = arr.map(element => element * element);

  console.log(arrSquare)

  // 使用 filter 方法从原数组中筛选出所有偶数。
  function getEvenArr(number) {
    return number % 2 === 0
  }
  const arrEven = arr.filter(getEvenArr)
  // 优化
  // const arrEven = arr.filter(number => number % 2 === 0);
  console.log(arrEven)

  // 使用 reduce 方法计算原数组中所有元素的和。
  function getSum(a, b) {
    return (sum = a + b)
  }
  const arrSum = arr.reduce(getSum)
  // 优化
  // const arrSum = arr.reduce((a, b) => a + b, 0);
  console.log(arrSum)

  // 2、字符串操作：
  // 给定一个字符串 str = "Hello, World! JavaScript is fun."，使用 split 方法将字符串按空格分割成单词数组。
  const str = 'Hello, World! JavaScript is fun.'
  let newStr = []
  newStr.push(str.split(' '))
  // 优化
  // const newStr = str.split(' ');
  console.log(newStr)

  // 使用 toUpperCase 方法将字符串中的所有字母转换为大写。
  let capitalStr = str.toUpperCase()
  console.log(capitalStr)

  // 使用 replace 方法将字符串中的 "JavaScript" 替换为 "JS"。
  let changeStr = str.replace('JavaScript', 'JS')
  console.log(changeStr)

  // 3、对象操作：
  // 给定一个对象 obj = { name: "Alice", age: 25, city: "New York" }，使用 Object.keys 方法获取对象的所有键，并将其转换为一个数组。
  const obj = { name: 'Alice', age: 25, city: 'New York' }
  let newObj = []
  newObj.push(Object.keys(obj))
  //   优化
  // const newObj = Object.keys(obj);
  console.log(newObj)

  // 使用 Object.values 方法获取对象的所有值，并将其转换为一个数组。
  let newObj2 = []
  newObj2.push(Object.values(obj))
  //   优化
  // const newObj2 = Object.values(obj);
  console.log(newObj2)
</script>
